#include "stdafx.h"
#include "link_list.h"
#include "link_list.cpp"
using fly::jld::ds::link_list;

TEST(ll, add)
{
	link_list<int> ll;
	ll.add(1);
	ll.add(2);
	ll.add(3);
	ll.add(4);
	ll.print();
	EXPECT_EQ(4, ll.size());
}

TEST(ll, rm)
{
	link_list<int> ll;
	ll.add(1);
	ll.add(2);
	ll.add(3);
	ll.add(4);
	ll.remove(3);
	ll.print();
	EXPECT_EQ(3, ll.size());

	ll.remove(4);
	EXPECT_EQ(2, ll.size());
}

TEST(ll, clear)
{
	link_list<int> ll;
	ll.add(1);
	ll.add(2);
	ll.add(3);
	ll.add(4);
	ll.clear();
	EXPECT_EQ(0, ll.size());
}

TEST(ll, pop_front)
{
	link_list<int> ll;
	ll.add(1);
	ll.add(2);
	ll.add(3);
	ll.add(4);
	ll.pop_front();
	EXPECT_EQ(3, ll.size());
}